xen/arm: Allow hypervisor access to mem_access protected pages
authorTamas K Lengyel <tklengyel@sec.in.tum.de>
Mon, 20 Apr 2015 15:06:17 +0000 (17:06 +0200)
committerIan Campbell <ian.campbell@citrix.com>
Wed, 22 Apr 2015 13:07:29 +0000 (14:07 +0100)
commit878b5e8fb5126f52817ae3b6e5eadb3da97fcd85
tree876414e54f6f1e4f61ecd9459d906ce89ad3ccef
parentad286187d9e23f7d9f4dcb45ae9c26454404af6a
xen/arm: Allow hypervisor access to mem_access protected pages

The hypervisor may use the MMU to verify that the given guest has read/write
access to a given page during hypercalls. As we may have custom mem_access
permissions set on these pages, we do a software-based type checking in case
the MMU based approach failed, but only if mem_access_enabled is set.

These memory accesses are not forwarded to the mem_event listener. Accesses
performed by the hypervisor are currently not part of the mem_access scheme.
This is consistent behaviour with the x86 side as well.

Signed-off-by: Tamas K Lengyel <tklengyel@sec.in.tum.de>
Reviewed-by: Julien Grall <julien.grall@citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
xen/arch/arm/p2m.c
xen/arch/arm/traps.c
xen/include/asm-arm/arm32/page.h
xen/include/asm-arm/arm64/page.h
xen/include/asm-arm/page.h